const router = require('express').Router()
const { User, userValidator } = require('../model/user')

const validator = require('../middleware/validate')
const userController = require('../controller/userController')
const authHandler = require('../middleware/authHandler')
// 这里为什么要将业务逻辑再进行抽取封装成controlller?
// 因为在后面丰富具体业务逻辑时，文件也会越来越复杂，导致可读性变差，
// 所以router只进行存由转接，具体的业务逻辑交由controller去实现

// 注册用户
router.post('/', validator(userValidator), userController.register)
// 获取所有用户
router.get('/', userController.getUserList)
// 查询用户
router.get('/:id', userController.getUser)
// 编辑用户
router.put('/:id', [authHandler, validator(userValidator)], userController.updateUser)
// 删除用户
router.delete('/:id', [authHandler], userController.delUser)

module.exports = router